package com.jews.common.utils;

import com.jews.common.constants.BaseEnum;
import com.jews.common.model.EnumVo;

import java.util.EnumSet;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 枚举转换成字典工具类
 *
 * @author JewsChen
 * @title: EnumDictUtils
 * @date 2022/11/27 23:24
 */
public class EnumDictUtils {
    private EnumDictUtils() {
    }

    public static <T extends Enum<T> & BaseEnum<T>> List<EnumVo> getEnumDictVo(Class<T> cls) {
        return EnumSet.allOf(cls).stream().map(et -> {
                    EnumVo vo = new EnumVo();
                    vo.setCode(et.getCode());
                    vo.setName(et.getName());
                    vo.setText(et.getName());
                    return vo;
                }
        ).collect(Collectors.toList());
    }
}
